package com.gz.service;

import com.gz.dto.PageData;
import com.gz.dto.QuestionDto;
import com.gz.entity.Question;
import java.util.List;

/**
 * (Question)表服务接口
 *
 * @author makejava
 * @since 2024-02-19 16:27:28
 */
public interface QuestionService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Question queryById(Integer id);

    /**
     * 分页查询
     *
     * @param dto 筛选条件
     * @return 查询结果
     */
    PageData queryByPage(QuestionDto dto);
    /**
     * 分页查询
     *
     * @param dto 筛选条件
     * @return 查询结果
     */
    List<Question> queryAll(QuestionDto dto);
    /**
     * 根据要求数量查询
     *
     * @param dto 筛选条件
     * @return 查询结果
     */
    List<Question> queryAllLimit(QuestionDto dto);
    /**
     * 单题辅助
     *
     * @param questionId 答错题目id
     * @return 查询结果
     */
    Question queryByWrong(Integer questionId);

    /**
     * 新增数据
     *
     * @param question 实例对象
     * @return 实例对象
     */
    Question insert(Question question);

    /**
     * 修改数据
     *
     * @param question 实例对象
     * @return 实例对象
     */
    Question update(Question question);
    /**
     * 批量修改数据
     *
     * @param list 实例对象
     * @return 实例对象
     */
    int updateBatch(List<Question> list);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

}
